Computer-based circuit simulators enable the analysis of complex circuits before the time and expense of building a circuit is incurred. In general, a circuit simulator is a software application that analyzes a circuit design to predict its behavior under a given set of conditions or assumptions. Typically, the description of the circuit is comprised of sets of equations describing the desired behavior of the circuit, and the simulator solves these equations in the context of simulated conditions represented by stimuli applied to the circuit in order to simulate operation under those conditions.
A circuit simulator typically constructs circuit equations from mathematical models of the components within the circuit. The mathematical models may be provided in the circuit simulator (i.e., the semiconductor device models of SPICE-like simulators), and/or may be specified by a user using a hardware description language (e.g., Verilog-AMS, Verilog-A). The circuit simulator combines the mathematical models of the components with equations that describe the interconnection of the components to construct a set of nonlinear differential algebraic equations (DAEs) that describe the circuit. In many circuit simulators, the circuit equations are derived from Kirchoffs voltage and current laws which require that the sum of all currents flowing out of a node at any instant is zero and the algebraic sum of all branch voltages around a loop at any instant is zero.
A circuit simulator may be used to perform many different types of analysis on a circuit. One analysis in particular, transient analysis, is often very tasking. Transient runs or simulations for full-chip mixed-signal designs at transistor level usually take days or even weeks to complete, and these simulations may significantly impact the design circle time. During these transient runs, a circuit simulator generally spends most of processor time evaluating device models and solving the circuit matrices. While the loop of device evaluation can be easily parallelized on shared memory architectures using a fine-grained scheme, scalable parallel matrix solving is difficult to achieve. Therefore, the matrix solver is often the bottleneck of a parallel circuit simulator, indicating a need for improving the efficiency of the matrix solver.
Some examples of conventional simulators are: Cox et. al., “Direct Circuit Simulation for Parallel Processing”, TCAD, June 1991; Chen et al., “Parallel LU Factorization for Circuit Simulation on a MIMD Computer”, ICCC 1988; Rabbat et al., “A Multilevel Newton Algorithm with Macromodeling and Latency for the Analysis of Large-Scale Nonlinear Circuits in the Time Domain.” TCAD, September 1979; and U.S. Pat. No. 6,577,992;